@echo off
echo ========================================
echo 用户登录问题诊断工具
echo ========================================
echo.

echo 1. 检查数据库连接...
echo [信息] 数据库配置:
echo     Host: localhost
echo     Port: 3306
echo     Database: zxgj
echo     Username: root
echo     Password: 1234

echo.
echo 2. 检查Redis连接...
ping -n 1 192.168.100.168 >nul 2>&1
if %errorlevel% equ 0 (
    echo [✓] Redis网络连通性正常
) else (
    echo [✗] Redis网络连通性异常
)

echo.
echo 3. 问题分析...
echo.
echo 根据代码分析，登录流程如下:
echo    1. 验证码校验 (Redis)
echo    2. 登录前置校验 (用户名密码格式)
echo    3. 用户验证 (从数据库查询用户)
echo    4. 密码验证 (BCrypt加密比对)
echo    5. 生成Token (存储到Redis)
echo.
echo 可能的问题点:
echo.
echo 问题1: 数据库连接失败
echo 原因: MySQL服务未启动或连接配置错误
echo 解决: 检查MySQL服务状态，确认数据库zxgj存在
echo.
echo 问题2: 用户数据不存在
echo 原因: 数据库中没有admin用户，或用户被删除/禁用
echo 解决: 检查sys_user表中是否有admin用户记录
echo.
echo 问题3: 密码不匹配
echo 原因: 输入的密码与数据库中存储的加密密码不匹配
echo 解决: 确认密码是否正确，或重置密码
echo.
echo 问题4: 用户状态异常
echo 原因: 用户被删除(del_flag='1')或被禁用(status='1')
echo 解决: 检查用户状态，恢复用户或重新创建
echo.
echo 4. 建议的解决步骤:
echo    1. 检查MySQL服务是否启动
echo    2. 确认数据库zxgj是否存在
echo    3. 检查sys_user表中是否有admin用户
echo    4. 确认用户状态是否正常
echo    5. 验证密码是否正确
echo    6. 如果用户不存在，需要初始化数据库或创建用户
echo.
echo 5. SQL查询语句参考:
echo    -- 检查用户是否存在
echo    SELECT user_id, user_name, status, del_flag, create_time 
echo    FROM sys_user WHERE user_name = 'admin';
echo.
echo    -- 检查用户总数
echo    SELECT COUNT(*) as user_count FROM sys_user WHERE del_flag = '0';
echo.
echo    -- 检查用户状态分布
echo    SELECT status, COUNT(*) as count FROM sys_user GROUP BY status;

:end
echo.
echo 诊断完成，按任意键退出...
pause >nul
